Однако, продолжим рассмотрение (вернее, беглый обзор - что называется,
голопом по европам) функций PHP.
- Функции доступа к dbm-базам.
- Функции даты и времени: получить, проверить правильность, вывести в
формате.
- Dbase-функции. Ну тут стандартный dbase-, clipper-,
и_иже_с_ними-набор: открыть/закрыть, читать/писать/заменять/добавлять/удалять
записи, получить количества колонок и записей в таблице.
- Функции для работы с директориями: открыть/закрыть, читать, сменить
каталог.
- Так называемые dl-функции (вернее, одна единственная функция) -
динамическая загрузка PHP-библиотеки в рунтайме. Статическая загрузка
предполагает наличие в ini-файле PHP указания на загружаемые
модули (разделы "extension" - сами модули, - и "extension_dir" -
где эти модули искать).
- Работа с DOM-объектами для XML-документов (для PHP
4-ой версии).
- Один из самых многочисленных разделов - группа функций работы с файловой
системой. С этой группой мы еще не раз столкнемся. Я думаю, этой группе
следует посвятить отдельный шаг.
- FTP-функции поддерживают весь стандартный набор команд
ftp-протокола.
- Чрезвычайно ценные HTTP-функции (их всего 3) позволяют управлять
HTTP-заголовком. Вот пример, в котором без функции header()
вообще нельзя обойтись. Вы формируете картинку PHP-кодом (до
image-функций мы еще доберемся). Если не сказать перед передачей
картинки браузеру header("Content-type: image/gif"), то в заголовке
HTTP-запроса будет утверждаться, что пришедший от сервера файл имеет
тип text/html.
- Image-функции позволяют создавать PNG- и Jpeg-файлы
"налету" (поддержка gif-формата с 4-ой версии PHP прекращена в связи с
проблемой лицензирования; впрочем, существуют сборки php_gd.dll с
поддержкой gif-ов), рисовать графические примитивы, выводить в картинке
текст и читать существующие картинки.
- IMAP-функции позволяют работать с imap-ящиками (чтение,
проверка, посылка письма, работа с заголовками писем, с почтовыми ящиками,
ping-и, mail-адреса, всякие там en-/decode, base64
и прочее).
- Математические функции (а как же без них!)
- Функции шифрования и хеш-функции (список поддерживаемых алгоритмов
занимает 2 строки).
- Что называется, минеслаус-функции: проверка коннекта,
define-функции, eval (выполнение строки как скрипта), работа с
аргументами функций (4-я версия), сериализация, sleep и пр.
- MySQL-функции. Им будут посвящены несколько шагов.
- Сетевые функции: NDS, ip-адреса, связь номера и имени
сетевого протокола и пр.
- ODBC-функции
- Очень полезная группа функций, возвращающих информацию о состоянии и
настройках PHP-интерпретатора, записывающих сообщения в
log-файлы, читающих окружения интерпретатора. Самая эффектная -
phpinfo() ;). Откройте в браузере файл http://localhost/info.php3, содержащий
такой текст:
<html>
<body>
<?php phpinfo(); ?>
</body>
</html>
Увидите чудо!
- Четыре функции для запуска внешних программ. Вернее три, четвертая
(escapeshellcmd) предназначена для экранирования символов "<",
">", "|" и некоторых других. Дело в том, что вызов внешней программы из
скрипта - потенциально опасное действие. Не проверив содержимое строки,
передаваемой в качестве параметра таким функциям, как eval(), можно
создать потенциальную брешь для злоумышленников. Посмотрите, что выведет на
экран такая конструкция: echo escapeshellcmd("echo y| format c:").
- Само собой, что в PHP есть функции работы с регулярными
выражениями.
- В 4-ой версии появилась возможность работать с сессиями (в 3-ей для этих
целей нужно писать эмулирующий сессии код). Сессиями мы займемся, когда будем
разрабатывать систему регистраций в наших будущих проектах.
- Огромный список функций работы со строками (включая функцию для
конвертации кириллицы в разные кодировки! - наверное, изобилием кодировок мы
уже весь мир достали ;).
- Семь функций работы с URL: base64, разбор URL-строки
на части (хост, порт, путь и т.д.), а также кодировка строки с заменой
неанглийских символов и пробелов 16-ричными цифрами с лидирующим "%" и обратно
(очень помогает при работе с файлами, имеющими русские буквы в названии).
- Функции проверки PHP-переменных на инициализированность (ух какое
словечко получилось! ;), принадлежность определенному типу (число, строка и
пр.) и т.п.
- XML-функции (парсинг XML-тегов). В прошлом шаге я давал ссылку на
сайт, где эта тема очень хорошо освещена.
Фух. На этом беглый обзор закончим. В следующих шагах займемся более
детальным рассмотрением функциональных групп на конкретных примерах.